#include <string>
#include <iostream>
using namespace std;
int main()
{
    // reinterpret_cast
    // 按字面意思就是“重新解释的转换”。它可以完全不考虑安全性地得到一个“不合法”的指针值
    int a{42};
    float *f{nullptr};
    f = reinterpret_cast<float *>(&a);
    cout << *f << endl;
    // 总之，如果不是为了编写底层程序（偏向操作系统和编译器的程序）的话，一般是用不到它的
    // reinterpret_cast 无法移除只读性，故任意的指针转换（即 C 风格转换的等价写法）在 C++ 风格中需要 reinterpret_cast 和 const_cast 两次转换
    return 0;
}